﻿using Framework.Domain.Interface.DomainObject.Bo;
using System;
using System.Collections.Generic;
using System.Text;

namespace Domain.Interface.Organization
{
    public interface IDepartmentDomain : IBaseBo
    {

        #region Domain 属性

        #region Set
        /// <summary>
        /// 部门名
        /// </summary>
        void SetDepartmentName(string DepartmentName);

        /// <summary>
        /// 部门编号
        /// </summary>
        void SetDepartmentNo(string DepartmentNo);

        /// <summary>
        /// 父级KeyId
        /// </summary>
        void SetParentKeyId(Guid? ParentKeyId);

        /// <summary>
        /// 部门负责人KeyId
        /// </summary>
        void SetDeptChiefKeyId(Guid? DeptChiefKeyId);

        /// <summary>
        /// 部门级别
        /// </summary>
        void SetLevel(int Level);

        /// <summary>
        /// 地址
        /// </summary>
        void SetAddress(string Address);
        #endregion

        #region Get
        /// <summary>
        /// 部门名
        /// </summary>
        string GetDepartmentName();

        /// <summary>
        /// 部门编号
        /// </summary>
        string GetDepartmentNo();

        /// <summary>
        /// 父级KeyId
        /// </summary>
        Guid? GetParentKeyId();

        /// <summary>
        /// 部门负责人KeyId
        /// </summary>
        Guid? GetDeptChiefKeyId();

        /// <summary>
        /// 部门级别
        /// </summary>
        int GetLevel();

        /// <summary>
        /// 地址
        /// </summary>
        string GetAddress();
        #endregion

        #endregion

        /// <summary>
        /// 获取当前部门所有的子部门
        /// </summary>
        /// <returns></returns>
        List<IDepartmentDomain> FindCurrentDeptSubDeptList();



    }
}
